La máquina Virtual Java (JVM)
Puede verse como una computadora abstracta que es definida por una especificación. Es una máquina imaginaria que se implementa por software .
Podemos estar hablando de:
La especificación abstracta.
Una implementación concreta
Una instancia de tiempo de ejecución
Sun publicó las especificaciones para la JVM para asegurar la portabilidad de las aplicaciones.
La máquina Virtual Java
Cada aplicación Java se ejecuta dentro de una instancia de tiempo de aplicación de alguna implementación concreta para la especificación abstracta.
La máquina Virtual Java
Código fuente
(Gp:) Compilador Java
(Gp:) Byte-codes
(Gp:) Win32 JVM
(Gp:) Código máquina
Win32
(Gp:) Macintosh JVM
(Gp:) UNIX JVM
(Gp:) Código máquina
Macintosh
(Gp:) Código máquina
UNIX
El API de Java
Es una colección de “partes” de software que brindan al usuario “utilidades”. Ejm: GUI.
Está formado por librerías o paquetes relacionados.
Compilación y ejecución
HelloWorld.java
javac HelloWorld.java
java HelloWorld
HelloWorld.class
compilar
correr
bytecode
Codigo fuente
Elementos del lenguaje
Declaraciones
Tipos de Datos
Operadores
Estructuras de control
Clases y Objetos
Paquetes
Declaraciones
Declaración de Variables
;
, , …, ;
= ;
Ejemplos
int x,y,z;
int x = 9;
boolean terminar = false;
Cliente = new Cliente();
Asignaciones
Asignaciones
= ;
;… = ;
Ejemplo
int x = 4; //Declaracion con asignación
x = 9; //Se asume que x está definida
c1 = new Cliente(); //Se asume que Cliente
//y c1 están definidos
Tipos de Datos
Tipos primitivos:
boolean true o false
char unicode! (16 bits)
byte entero de 8 bits con signo.
short entero de 16 bits con signo.
int entero de 32 bits con signo.
long entero de 64 bits con signo.
float,double IEEE 754 floating point
No es un int
Otros tipos de datos.
Tipos compuestos
Clases
Arreglos
Los strings son soportados mediante una clase built-in class denominada String.
Conversiones de tipos
Conversión entre los tipos enteros y punto flotante.
Incluye char
No hay conversión automatica con el tipo boolean!
Las conversiones se pueden forzar mediante una operación de casting – con la misma sintaxis de C/C++.
int i = (int) 1.345;
Operadores
Asignación: =, +=, -=, *=, …
Numéricos: +, -, *, /, %, ++, –, …
Relacionales: ==. !=, <, >, <=, >=, …
Booleanos: &&, ||, !
De Bits: &, |, ^, ~, <<, >>, …
Comentarios
// comentario
Los caracteres desde // hasta el final de la línea son ignorados.
/* comentario */
Los caracteres entre /* y */ son ignorados
/** comentario */
Los caracteres entre /** y */son ignorados y se incluyen en la generación autómatica de la documentación.
Identificadores
Nombre dado a una variable, un método o una clase.
Comienzan con una letra Unicode (incluyendo _ and $) y seguido de letras y digitos.
Pueden ser de cualquier longitud.
Ejemplos:
Apellido
Hora
$PorMenos
Paquetes
Se usan para encapsular los datos de manera automática.
Los paquetes de clases se cargan con la palabra clave import.
Ejemplo:
import java.Date;
import java.awt.*;
import miPaquete.miClase;
Tipos de Clases en Java
abstract. Una clase abstracta no se instancia, sino que se utiliza como clase base para la herencia.
final. Una clase final se declara como la clase que termina una cadena de herencia.
public. Las clases public son accesibles desde otras clases, bien sea directamente o por herencia. Para acceder desde otros paquetes, primero tienen que ser importadas.
Niveles de acceso a métodos y atributos
public. Cualquier clase desde cualquier lugar puede acceder a las variables y métodos.
protected o friendly. Sólo las subclases de la clase y nadie más pueden acceder a las variables y métodos.
Private. Las variables y métodos de instancia privados sólo pueden ser accedidos desde dentro de la clase.
Ejemplo herencia
public class Articulo { // clase padre
public float precio=0;
…
public void setPrecio(float elPrecio) {
precio = elPrecio;
}
…
public float getPrecio() {
return precio;
}
}
//los métodos y atributos de Articulo son heredados a Pelicula
public class Pelicula extends Articulo {// clase hijo
public void setDescripcion(String descrip) {
descripcion = descrip;
}
…
public String getDescripcion() {
return descripcion;
}
}
Página anterior | Volver al principio del trabajo | Página siguiente |